"""
1. 使用Python操作MongoDB向集合t3中插入1000个文档
   * 文档的属性包括 `_id`、`name`
   * _id`的值为0、1、2、3、。。。。999`
   * `name`的值为`py0`、`py1`。。。。。
2. 查询显示出`_id`为100的整数倍的文档，如100、200、300…，将`name`输出
3. 将如上代码封装为面向对象方式
"""

from pymongo import MongoClient


class MGINfo(object):
    def __init__(self):
        # 链接MongoDB数据库
        client = MongoClient("127.0.0.1", 27017)
        self.collection = client["test"]["t3"]

    def insert(self):
        # 生成一个包含1000个信息的列表
        info_list = [{"_id": x, "name": "py%s" % x} for x in range(1000)]
        # print(info_list)

        # 插入数据
        ret = self.collection.insert_many(info_list)
        # print(ret)

    def find_100(self):
        # 查询_id为100的整数倍的文档
        ret = self.collection.find({"$where": """
            function() {
                return this._id > 0 && this._id % 100 == 0;
            }
            """})

        print(ret)
        print(ret.count())
        for temp in ret:
            print(temp)


# 创建对象
mongo_info = MGINfo()
# 查询数据
mongo_info.find_100()
